﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using SpeedikonCom;

namespace SOM.Objects
{
  public partial class Opening : SOM.Interfaces.Objects.IOpening
  {
    private int _ID = 0;
    private SOM.Helper.enums.subType _SubType = 0;
    private int _WallID = 0;
    private SOM.Helper.Types.Point3d _StartPoint = new SOM.Helper.Types.Point3d { X = 0, Y = 0, Z = 0 };
    private double _ParapetHeight = 0;
    private double _Angle = 0;
    private double _Width = 0;
    private double _Height = 0;
    private double _Depht = 0;
    private double _A_OFFSET_TOP = 0;
    private double _A_THERMAL_TRANSMITTANCE = 0;

    private int _A_CONNECT = 0;
    private int _A_CONSTRUCTION = 0;
    private int _A_DOOR_TYPE = 0;
    private int _A_ELEMENT_MAC_HOLE_CLOSURE_BYMACRO = 0;
    private int _A_ELEMENT_MAC_HOLE_ELEV_BYMACRO = 0;
    private int _A_ELEMENT_USER_NUMBER = 0;
    private int _A_LEVELID_BOTTOM_DIM = 0;
    private int _A_LEVELID_TOP = 0;
    private int _A_LEVELID_TOP_DIM = 0;
    private int _A_OFFSET_TOP_LOCK = 0;
    private int _A_POSITIONING_TYPE = 0;
    private int _A_SECTION_MODE = 0;
    private int _A_SOUND_REDUCTION = 0;

    private string _A_CATEGORY = "";
    private string _A_ELEMENTCODE = "";
    private string _A_ELEMENTDESC = "";
    private string _A_FIRECLASS = "";
    private string _A_MACRONAME = "";
    private string _A_PROTOTYPE = "";

    public int ID
    {
      get { return _ID; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _ID = value;
      }
    }
    public SOM.Helper.enums.subType SubType
    {
      get { return _SubType; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _SubType = value;
      }
    }
    public int WallID
    {
      get { return _WallID; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _WallID = value;
      }
    }
    public SOM.Helper.Types.Point3d StartPoint
    {
      get { return _StartPoint; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _StartPoint = value;
      }
    }
    public double ParapetHeight
    {
      get { return _ParapetHeight; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _ParapetHeight = value;
      }
    }
    public double Angle
    {
      get { return _Angle; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _Angle = value;
      }
    }
    public double Width
    {
      get { return _Width; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _Width = value;
      }
    }
    public double Height
    {
      get { return _Height; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _Height = value;
      }
    }
    public double Depht
    {
      get { return _Depht; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _Depht = value;
      }
    }
    public double A_OFFSET_TOP
    {
      get { return _A_OFFSET_TOP; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_OFFSET_TOP = value;
      }
    }
    public double A_THERMAL_TRANSMITTANCE
    {
      get { return _A_THERMAL_TRANSMITTANCE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_THERMAL_TRANSMITTANCE = value;
      }
    }

    public int A_CONNECT
    {
      get { return _A_CONNECT; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_CONNECT = value;
      }
    }
    public int A_CONSTRUCTION
    {
      get { return _A_CONSTRUCTION; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_CONSTRUCTION = value;
      }
    }
    public int A_DOOR_TYPE
    {
      get { return _A_DOOR_TYPE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_DOOR_TYPE = value;
      }
    }
    public int A_ELEMENT_MAC_HOLE_CLOSURE_BYMACRO
    {
      get { return _A_ELEMENT_MAC_HOLE_CLOSURE_BYMACRO; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_ELEMENT_MAC_HOLE_CLOSURE_BYMACRO = value;
      }
    }
    public int A_ELEMENT_MAC_HOLE_ELEV_BYMACRO
    {
      get { return _A_ELEMENT_MAC_HOLE_ELEV_BYMACRO; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_ELEMENT_MAC_HOLE_ELEV_BYMACRO = value;
      }
    }
    public int A_ELEMENT_USER_NUMBER
    {
      get { return _A_ELEMENT_USER_NUMBER; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_ELEMENT_USER_NUMBER = value;
      }
    }
    public int A_LEVELID_BOTTOM_DIM
    {
      get { return _A_LEVELID_BOTTOM_DIM; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_LEVELID_BOTTOM_DIM = value;
      }
    }
    public int A_LEVELID_TOP
    {
      get { return _A_LEVELID_TOP; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_LEVELID_TOP = value;
      }
    }
    public int A_LEVELID_TOP_DIM
    {
      get { return _A_LEVELID_TOP_DIM; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_LEVELID_TOP_DIM = value;
      }
    }
    public int A_OFFSET_TOP_LOCK
    {
      get { return _A_OFFSET_TOP_LOCK; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_OFFSET_TOP_LOCK = value;
      }
    }
    public int A_POSITIONING_TYPE
    {
      get { return _A_POSITIONING_TYPE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_POSITIONING_TYPE = value;
      }
    }
    public int A_SECTION_MODE
    {
      get { return _A_SECTION_MODE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_SECTION_MODE = value;
      }
    }
    public int A_SOUND_REDUCTION
    {
      get { return _A_SOUND_REDUCTION; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_SOUND_REDUCTION = value;
      }
    }

    public string A_CATEGORY
    {
      get { return _A_CATEGORY; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_CATEGORY = value;
      }
    }
    public string A_ELEMENTCODE
    {
      get { return _A_ELEMENTCODE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_ELEMENTCODE = value;
      }
    }
    public string A_ELEMENTDESC
    {
      get { return _A_ELEMENTDESC; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_ELEMENTDESC = value;
      }
    }
    public string A_FIRECLASS
    {
      get { return _A_FIRECLASS; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_FIRECLASS = value;
      }
    }
    public string A_MACRONAME
    {
      get { return _A_MACRONAME; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_MACRONAME = value;
      }
    }
    public string A_PROTOTYPE
    {
      get { return _A_PROTOTYPE; }
      set
      {
        if (_readOnly)
        {
          throw new Exception("You can not change this paramter. Properties are set " + (char)(34) + "ReadOnly" + (char)(34) + "!");
        }
        _A_PROTOTYPE = value;
      }
    }
  }
}
